home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / g_quake / shockab.zip / TARBABY.QC < prev    next >
Text File  |  1996-10-09  |  9KB  |  225 lines

  1. /*
  2. ==============================================================================
  3.  
  4. BLOB
  5.  
  6. ==============================================================================
  7. */
  8.  
  9. $cd /raid/quake/id1/models/tarbaby
  10. $origin 0 0 24
  11. $base base        
  12.  
  13. $skin skin
  14.  
  15. $frame walk1 walk2 walk3 walk4  walk5 walk6 walk7 walk8 walk9 walk10
  16. $frame walk11 walk12 walk13 walk14 walk15 walk16 walk17 walk18 walk19
  17. $frame walk20 walk21 walk22 walk23 walk24 walk25
  18.  
  19. $frame run1 run2 run3 run4 run5 run6  run7 run8 run9 run10 run11 run12 run13
  20. $frame run14 run15 run16 run17 run18 run19 run20 run21 run22 run23
  21. $frame run24 run25
  22.  
  23. $frame jump1 jump2 jump3 jump4 jump5 jump6
  24.  
  25. $frame fly1 fly2 fly3 fly4
  26.  
  27. $frame exp
  28.  
  29. void()      tbaby_stand1      =[    $walk1,           tbaby_stand1      ] {ai_stand();};
  30.  
  31. void()      tbaby_hang1       =[    $walk1,           tbaby_hang1 ] {ai_stand();};
  32.  
  33. void()      tbaby_walk1 =[    $walk1,           tbaby_walk2 ] {ai_turn();};
  34. void()      tbaby_walk2 =[    $walk2,           tbaby_walk3 ] {ai_turn();};
  35. void()      tbaby_walk3 =[    $walk3,           tbaby_walk4 ] {ai_turn();};
  36. void()      tbaby_walk4 =[    $walk4,           tbaby_walk5 ] {ai_turn();};
  37. void()      tbaby_walk5 =[    $walk5,           tbaby_walk6 ] {ai_turn();};
  38. void()      tbaby_walk6 =[    $walk6,           tbaby_walk7 ] {ai_turn();};
  39. void()      tbaby_walk7 =[    $walk7,           tbaby_walk8 ] {ai_turn();};
  40. void()      tbaby_walk8 =[    $walk8,           tbaby_walk9 ] {ai_turn();};
  41. void()      tbaby_walk9 =[    $walk9,           tbaby_walk10      ] {ai_turn();};
  42. void()      tbaby_walk10      =[    $walk10,          tbaby_walk11      ] {ai_turn();};
  43. void()      tbaby_walk11      =[    $walk11,          tbaby_walk12      ] {ai_walk(2);};
  44. void()      tbaby_walk12      =[    $walk12,          tbaby_walk13      ] {ai_walk(2);};
  45. void()      tbaby_walk13      =[    $walk13,          tbaby_walk14      ] {ai_walk(2);};
  46. void()      tbaby_walk14      =[    $walk14,          tbaby_walk15      ] {ai_walk(2);};
  47. void()      tbaby_walk15      =[    $walk15,          tbaby_walk16      ] {ai_walk(2);};
  48. void()      tbaby_walk16      =[    $walk16,          tbaby_walk17      ] {ai_walk(2);};
  49. void()      tbaby_walk17      =[    $walk17,          tbaby_walk18      ] {ai_walk(2);};
  50. void()      tbaby_walk18      =[    $walk18,          tbaby_walk19      ] {ai_walk(2);};
  51. void()      tbaby_walk19      =[    $walk19,          tbaby_walk20      ] {ai_walk(2);};
  52. void()      tbaby_walk20      =[    $walk20,          tbaby_walk21      ] {ai_walk(2);};
  53. void()      tbaby_walk21      =[    $walk21,          tbaby_walk22      ] {ai_walk(2);};
  54. void()      tbaby_walk22      =[    $walk22,          tbaby_walk23      ] {ai_walk(2);};
  55. void()      tbaby_walk23      =[    $walk23,          tbaby_walk24      ] {ai_walk(2);};
  56. void()      tbaby_walk24      =[    $walk24,          tbaby_walk25      ] {ai_walk(2);};
  57. void()      tbaby_walk25      =[    $walk25,          tbaby_walk1 ] {ai_walk(2);};
  58.  
  59. void()      tbaby_run1  =[    $run1,            tbaby_run2  ] {ai_face();};
  60. void()      tbaby_run2  =[    $run2,            tbaby_run3  ] {ai_face();};
  61. void()      tbaby_run3  =[    $run3,            tbaby_run4  ] {ai_face();};
  62. void()      tbaby_run4  =[    $run4,            tbaby_run5  ] {ai_face();};
  63. void()      tbaby_run5  =[    $run5,            tbaby_run6  ] {ai_face();};
  64. void()      tbaby_run6  =[    $run6,            tbaby_run7  ] {ai_face();};
  65. void()      tbaby_run7  =[    $run7,            tbaby_run8  ] {ai_face();};
  66. void()      tbaby_run8  =[    $run8,            tbaby_run9  ] {ai_face();};
  67. void()      tbaby_run9  =[    $run9,            tbaby_run10 ] {ai_face();};
  68. void()      tbaby_run10 =[    $run10,           tbaby_run11 ] {ai_face();};
  69. void()      tbaby_run11 =[    $run11,           tbaby_run12 ] {ai_run(2);};
  70. void()      tbaby_run12 =[    $run12,           tbaby_run13 ] {ai_run(2);};
  71. void()      tbaby_run13 =[    $run13,           tbaby_run14 ] {ai_run(2);};
  72. void()      tbaby_run14 =[    $run14,           tbaby_run15 ] {ai_run(2);};
  73. void()      tbaby_run15 =[    $run15,           tbaby_run16 ] {ai_run(2);};
  74. void()      tbaby_run16 =[    $run16,           tbaby_run17 ] {ai_run(2);};
  75. void()      tbaby_run17 =[    $run17,           tbaby_run18 ] {ai_run(2);};
  76. void()      tbaby_run18 =[    $run18,           tbaby_run19 ] {ai_run(2);};
  77. void()      tbaby_run19 =[    $run19,           tbaby_run20 ] {ai_run(2);};
  78. void()      tbaby_run20 =[    $run20,           tbaby_run21 ] {ai_run(2);};
  79. void()      tbaby_run21 =[    $run21,           tbaby_run22 ] {ai_run(2);};
  80. void()      tbaby_run22 =[    $run22,           tbaby_run23 ] {ai_run(2);};
  81. void()      tbaby_run23 =[    $run23,           tbaby_run24 ] {ai_run(2);};
  82. void()      tbaby_run24 =[    $run24,           tbaby_run25 ] {ai_run(2);};
  83. void()      tbaby_run25 =[    $run25,           tbaby_run1  ] {ai_run(2);};
  84.  
  85.  
  86. //============================================================================
  87.  
  88.  
  89. void()      tbaby_jump1;
  90.  
  91. void()      Tar_JumpTouch =
  92. {
  93.     local float ldmg;
  94.  
  95.     if (other.takedamage && other.classname != self.classname)
  96.     {
  97.         if ( vlen(self.velocity) > 400 )
  98.         {
  99.             ldmg = 10 + 10*random();
  100.             T_Damage (other, self, self, ldmg); 
  101.             sound (self, CHAN_WEAPON, "blob/hit1.wav", 1, ATTN_NORM);
  102.         }
  103.     }
  104.     else
  105.         sound (self, CHAN_WEAPON, "blob/land1.wav", 1, ATTN_NORM);
  106.  
  107.  
  108.     if (!checkbottom(self))
  109.     {
  110.         if (self.flags & FL_ONGROUND)
  111.         {     // jump randomly to not get hung up
  112. //dprint ("popjump\n");
  113.     self.touch = SUB_Null;
  114.     self.think = tbaby_run1;
  115.     self.movetype = MOVETYPE_STEP;
  116.     self.nextthink = time + 0.1;
  117.  
  118. //                self.velocity_x = (random() - 0.5) * 600;
  119. //                self.velocity_y = (random() - 0.5) * 600;
  120. //                self.velocity_z = 200;
  121. //                self.flags = self.flags - FL_ONGROUND;
  122.         }
  123.         return;     // not on ground yet
  124.     }
  125.  
  126.     self.touch = SUB_Null;
  127.     self.think = tbaby_jump1;
  128.     self.nextthink = time + 0.1;
  129. };
  130.  
  131. void()      tbaby_jump5;
  132.  
  133. void()      tbaby_fly1        =[    $fly1,      tbaby_fly2  ] {};
  134. void()      tbaby_fly2        =[    $fly2,      tbaby_fly3  ] {};
  135. void()      tbaby_fly3        =[    $fly3,      tbaby_fly4  ] {};
  136. void()      tbaby_fly4        =[    $fly4,      tbaby_fly1  ] {
  137. self.cnt = self.cnt + 1;
  138. if (self.cnt == 4)
  139. {
  140. //dprint ("spawn hop\n");
  141. tbaby_jump5 ();
  142. }
  143. };
  144.  
  145. void()      tbaby_jump1       =[    $jump1,     tbaby_jump2       ] {ai_face();};
  146. void()      tbaby_jump2       =[    $jump2,     tbaby_jump3       ] {ai_face();};
  147. void()      tbaby_jump3       =[    $jump3,     tbaby_jump4       ] {ai_face();};
  148. void()      tbaby_jump4       =[    $jump4,     tbaby_jump5       ] {ai_face();};
  149. void()      tbaby_jump5       =[    $jump5,     tbaby_jump6       ]
  150. {     
  151.     self.movetype = MOVETYPE_BOUNCE;
  152.     self.touch = Tar_JumpTouch;
  153.     makevectors (self.angles);
  154.     self.origin_z = self.origin_z + 1;
  155.     self.velocity = v_forward * 600 + '0 0 200';
  156.     self.velocity_z = self.velocity_z + random()*150;
  157.     if (self.flags & FL_ONGROUND)
  158.         self.flags = self.flags - FL_ONGROUND;
  159.     self.cnt = 0;
  160. };
  161. void()      tbaby_jump6 =[    $jump6,tbaby_fly1 ] {};
  162.  
  163.  
  164.  
  165. //=============================================================================
  166.  
  167. void()      tbaby_die1  =[    $exp,       tbaby_die2  ] {
  168. self.takedamage = DAMAGE_NO;
  169. };
  170. void()      tbaby_die2  =[    $exp,       tbaby_run1  ] 
  171. {
  172.     T_RadiusDamage (self, self, 120, world);
  173.  
  174.     sound (self, CHAN_VOICE, "blob/death1.wav", 1, ATTN_NORM);
  175.     self.origin = self.origin - 8*normalize(self.velocity);
  176.  
  177.     WriteByte (MSG_BROADCAST, SVC_TEMPENTITY);
  178.     WriteByte (MSG_BROADCAST, TE_TAREXPLOSION);
  179.     WriteCoord (MSG_BROADCAST, self.origin_x);
  180.     WriteCoord (MSG_BROADCAST, self.origin_y);
  181.     WriteCoord (MSG_BROADCAST, self.origin_z);
  182.     
  183.     BecomeExplosion ();
  184. };
  185.  
  186. //=============================================================================
  187.  
  188.  
  189. /*QUAKED monster_tarbaby (1 0 0) (-16 -16 -24) (16 16 24) Ambush
  190. */
  191. void() monster_tarbaby =
  192. {
  193.     if (deathmatch)
  194.     {
  195.         remove(self);
  196.         return;
  197.     }
  198.     precache_model2 ("progs/tarbaby.mdl");
  199.  
  200.     precache_sound2 ("blob/death1.wav");
  201.     precache_sound2 ("blob/hit1.wav");
  202.     precache_sound2 ("blob/land1.wav");
  203.     precache_sound2 ("blob/sight1.wav");
  204.     
  205.     self.solid = SOLID_SLIDEBOX;
  206.     self.movetype = MOVETYPE_STEP;
  207.  
  208.     setmodel (self, "progs/tarbaby.mdl");
  209.  
  210.     setsize (self, '-16 -16 -24', '16 16 40');
  211.     self.health = 80;
  212.  
  213.     self.th_stand = tbaby_stand1;
  214.     self.th_walk = tbaby_walk1;
  215.     self.th_run = tbaby_run1;
  216.     self.th_missile = tbaby_jump1;
  217.     self.th_melee = tbaby_jump1;
  218.     self.th_die = tbaby_die1;
  219.     
  220.     self.CanBeShocked = TRUE;
  221.  
  222.     walkmonster_start ();
  223. };
  224.  
  225.